module carry_lookahead_adder(A, B, Cout, S);
	input [13:0]A;
	input [13:0]B;
	
	output [13:0]S;
	output Cout;
	
	wire [13:0]C;
	
	genvar i;
	
	generate
		for (i = 0; i <= 13; i = i+1) begin:adder
			if (i==0)
				full_adder(A[i], B[i], 1'b0, C[i], S[i]);
			else
				full_adder(A[i], B[i], C[i-1], C[i], S[i]);
		end
	endgenerate
	
	assign Cout = C[13];

endmodule 